package com.example.ssrbac;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * Spring Boot 应用程序入口类
 * 
 * 该应用程序实现了一个基于Spring Security的RBAC（基于角色的访问控制）系统
 * 主要功能包括：
 * 1. 用户认证和授权
 * 2. JWT token的生成和验证
 * 3. 基于角色的权限控制
 * 4. Redis缓存支持
 * 
 * @author Your Name
 * @version 1.0
 */
@SpringBootApplication
public class SsrbacApplication {
    // 使用SLF4J进行日志记录
    private static final Logger logger = LoggerFactory.getLogger(SsrbacApplication.class);

    /**
     * 应用程序入口方法
     * 
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        // 记录应用启动日志
        logger.info("正在启动SSRBAC应用程序...");
        
        // 启动Spring Boot应用并获取应用上下文
        ConfigurableApplicationContext context = SpringApplication.run(SsrbacApplication.class, args);
        
        // 记录应用启动成功日志
        logger.info("SSRBAC应用程序启动成功！");
        
        // 记录当前激活的配置文件
        logger.info("当前激活的配置文件: {}", context.getEnvironment().getActiveProfiles());
    }
}
